import requests
import re
import os
import json
import time as t
from tkinter import *


def nusic():
    headers = {
        'Accept-Encoding': 'gzip, deflate, sdch',
        'Accept-Language': 'en-US,en;q=0.8',
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Referer': 'http://www.baidu.com/',
        'Connection': 'keep-alive',
    }
    names = []
    order = ' '

    w = input("请输入歌曲名： ")
    url_0 = "https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=61460539676714578&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=10&w={0}&g_tk_new_20200303=5381&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0".format(
        w)
    res_0 = requests.get(url_0, headers=headers)  # 第一层，搜索页
    res_0.encoding = res_0.apparent_encoding
    res_0 = res_0.json()  # dict
    music_list = res_0["data"]["song"]["list"]
    print("共计" + str(len(music_list)) + "结果： ")  ##########################

    all_singers = []
    a = 0
    for music in music_list:
        singer = music["singer"][0]["title"]  # 歌手名
        name = str(a) + "  " + music["title"]  # 歌曲名
        all_singers.append(singer)
        names.append(name)
        a = a + 1
    infs = dict(zip(names, all_singers))
    infs = json.dumps(infs, ensure_ascii=False, indent=4, separators=(',', ':'))
    infs = infs.replace('"', ' ')
    infs = infs.replace(':', '——————')
    print(infs)

    order = input("请输入歌曲前的序号：")
    songmid = res_0['data']['song']['list'][int(order)]['mid']
    url_1 = "https://u.y.qq.com/cgi-bin/musicu.fcg?format=json&data=%7B%22req_0%22%3A%7B%22module%22%3A%22vkey.GetVkeyServer%22%2C%22method%22%3A%22CgiGetVkey%22%2C%22param%22%3A%7B%22guid%22%3A%22358840384%22%2C%22songmid%22%3A%5B%22{}%22%5D%2C%22songtype%22%3A%5B0%5D%2C%22uin%22%3A%221443481947%22%2C%22loginflag%22%3A1%2C%22platform%22%3A%2220%22%7D%7D%2C%22comm%22%3A%7B%22uin%22%3A%2218585073516%22%2C%22format%22%3A%22json%22%2C%22ct%22%3A24%2C%22cv%22%3A0%7D%7D".format(
        songmid)

    res_1 = requests.get(url_1, headers=headers)
    res_1.encoding = res_1.apparent_encoding
    res_1 = res_1.json()  # dict
    purl = res_1['req_0']['data']['midurlinfo'][0]['purl']
    url_2 = "https://isure.stream.qqmusic.qq.com/" + purl

    res_2 = requests.get(url_2, headers=headers).content
    fir = names[int(order)]
    tit = re.sub(r'\d+', '', fir)
    now = os.getcwd()
    now = os.path.join(now, "qq音乐 ")
    if not os.path.exists(now):
        os.mkdir(now)
    os.chdir(now)
    file_name = tit + '.m4a'
    with open(file_name, 'wb') as f:
        f.write(res_2)

def printSomething():
    # if you want the button to disappear:
    # button.destroy() or button.pack_forget()

    for x in range(9): # 0 is unnecessary
        label = Label(root, text= str(x))
    # this creates x as a new label to the GUI
    label.pack()

root = Tk()

button = Button(root, text="Print Me", command=printSomething)
button.pack()

root.mainloop()


